The Cactus Approach to Building Configurable Middleware Services
نویسندگان
چکیده
A number of fundamental abstractions and supporting software mechanisms have been developed for simplifying the problems associated with programming highly dependable distributed systems. For example, transactions provide all or nothing execution despite failures, while ordered atomic multicast supports the replicated state machine approach to fault tolerance by ensuring that changes to the state machine are delivered atomically and in a consistent order despite failures. All of these provide a higher level virtual machine on which to build applications by abstracting away details such as the effect of failures, message reordering and losses, and unconstrained concurrent execution. Each is appropriate for different kinds of applications with different requirements. Many of the concrete realizations of these abstractions have been built as middleware services, i.e., software that is logically layered below the application and above the operating system. For each type of abstraction, however, there are often multiple different ways to define the exact semantics that it provides or other attributes, such as the type of failures it is designed to tolerate. This is especially true for multicast, which have been the basis for a large number of group communication services with varying semantics, including Isis [4], Horus [13], Transis [2], Totem [12], Consul [11], xAMP [14], and RTcast [1]. Often, each is different because it is oriented towards a particular type of application or a given execution environment. Our thesis is that the use of highly configurable software can make it easier to construct applications by simplifying the process of building custom middleware services with specific attributes and guarantees. The availability of an easy route to a custom solution is an attractive alternative to the choices faced by current application builders, which typically involve either trying to use existing services with fixed guarantees or constructing an entire service from the ground up. Here, we describe Cactus, a system that realizes this approach, and discuss some of the challenges in providing configurable services with fault tolerance, real time, and security properties. We then briefly discuss a number of different middleware services implemented using Cactus and outline some of the on-going work in developing new services.
منابع مشابه
Providing QoS Customization in Distributed Object Systems
Distributed applications are increasingly using distributed object platforms such as CORBA, DCOM, and Java RMI to standardize object interactions. With this increased use comes the increased need for providing enhanced Quality of Service (QoS) attributes related to fault tolerance, security, and timeliness. This paper describes an approach to implementing such enhancements in a transparent, hig...
متن کاملBuilding Survivable Services Using Redundancy and Adaptation
Survivable systems—that is, systems that can continue to provide service despite failures, intrusions, and other threats—are increasingly needed in a wide variety of civilian and military application areas. As a step toward realizing such systems, this paper advocates the use of redundancy and adaptation to build survivable services that can provide core functionality for implementing survivabi...
متن کاملConfigurable Component Middleware for Distributed Real-Time Systems with Aperiodic and Periodic Tasks
Many distributed real-time applications must handle mixed periodic and aperiodic tasks with diverse requirements. However, existing middleware lacks flexible configuration mechanisms needed to manage end-to-end timing easily for a wide range of different applications with both periodic and aperiodic tasks. The primary contribution of this work is the design, implementation and performance evalu...
متن کاملThis development environment enables the specification , automated composition , and quality analysis of flexible , configurable middleware architectures , notably in distributed systems . Systematic Aid for Developing Middleware Architectures
Middleware is necessary for developing distributed systems. Developers compose them from reusable services provided by standard or proprietary middleware infrastructures, including the Object Management Group’s Common Object Request Broker (CORBA), Microsoft’s Distributed Component Object Model, Sun Microsystems’ Java Remote Method Invocation, and related services, to deal with nonfunctional re...
متن کاملCustomizing Component Middleware for Distributed Real-Time Systems with Aperiodic and Periodic Tasks
Many distributed real-time applications must handle mixed aperiodic and periodic tasks with diverse requirements. However, existing middleware lacks flexible configuration mechanisms needed to manage end-to-end timing easily for a wide range of different applications with both aperiodic and periodic tasks. The primary contribution of this work is the design, implementation and performance evalu...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2000